General Information

  • mipsABI - What is the MIPS ABI? What is it for?
  • systems - What systems support the ABI?
  • rp model - What is the Reference Platform Model?
  • which platform - Which Reference Platform version should I use?
  • black book - What is the Black Book?
  • documents - What makes up the spec? Further reading
  • where do I - Where to find documents, support, info
  • which version - Which version of the ABI does a system support?
  • ocmp - What is OCMP?
  • What is the MIPS ABI? What is it for?

    The MIPS ABI is an Application Binary Interface for MIPS processors running UNIX SVR4. It documents a standard binary interface for application programs on systems based on members of the MIPS processor family That implement the interfaces of UNIX System V Release 4.0 or above.

    The MIPS ABI is actually comprised of a number of documents.

    The

    What systems support the ABI?

    The following vendors are shipping operating systems which support the MIPS ABI:

    What is the Reference Platform model?

    The MIPS ABI is based on a Reference Platform (RP) model. Under this model, a single platform is designated as a "tie-breaker". The software developer should build and test the application on the RP; the other ABI-conforming vendors guarantee that ABI compliant binaries that run correctly on the RP will run correctly on their platforms.

    To be strictly accurate, there are two different forms of ABI compliance. All the ABI-conforming systems are ABI Execution Platforms, the Reference Platform is the "tie-breaker" for how a program should work. There are also ABI Generation Platforms, which are used to build ABI programs; the Reference Platform is again the "tie-breaker". The ABI generation environment need not necessarily be hosted on top of an ABI execution environment. As of the current version of this document, only the Reference Platform is an approved Generation Platform, although there are plans to certify additional Generation Platforms in the near future.

    Given the current situation, it is thus a requirement that a software developer have a Reference Platform on hand, or visit or remotely access a porting center, in order to perform and test an ABI port.

    A cornerstone of this strategy is the availability of test technology to certify ABI compliance of a binary. At the moment, facilities for such

    Which Reference Platform version should I use?

    Each edition of the Conformance Guide has a matching Reference Platform which implements that level of technology. For version 1.1 of the Conformance Guide, the Reference Platform is Silicon Graphics IRIX 5.2 with the IRIS Development Option (IDO) 3.18. The IDO is essentially the compilers and libraries. Any Silicon Graphics system which can run this software can be a Reference Platform. (NOTE: prior to the release of IRIX 5.2, IRIX 5.1 with IDO 3.17 plus a special ABI Construction Kit (available from the SGI Developer's Technical Program) was used as the Reference Platform for the 1.1 Conformance Guide).

    The Reference Platform conforming to the 1.0 Conformance Guide edition was MIPS Computer Systems' RISC/os 5.01 with ANSI C 3.11.

    The Reference Platform for the (future) 1.2 Conformance Guide will be a future version of IRIX.

    The ABI maintains backwards, but not forwards compatibility, so programs developed on the earlier RP will execute on the later ones, but will not be able to take advantage of new features.

    In general, the latest RP is the best one to develop on, as it is likely to have the strongest level of support available.

    What is the Black Book?

    The Black Book is the MIPS Processor ABI Conformance Guide. It is the defining document for the ABI.

    What makes up the spec? Further reading

    The ABI is defined by a series of documents. The basic defining document is SVID 3. The Generic ABI defines those elements which must be available on all ABI compliant platforms. The MIPS Processor Supplement defines how the Generic ABI is implemented on the MIPS processor family. The Conformance Guide defines additional interfaces agreed upon by the MIPS ABI group members, and provides guidance in implementation.

    These are the references for the documents which define the standard:

    System V Interface Definition, Third Edition. AT&T UNIX Software Operation, Four Volumes, Select Codes 320-136, 320-137, 320-138, 320-139. A fifth volume contains updates to the interfaces described in the first four volumes.

    System V Application Binary Interface, Prentice Hall, ISBN 0-13-877598-2. This is the defining document for the Generic ABI (gABI). Note: A revised (2nd) edition and a 3rd edition are also on the market, but may document interfaces which are not covered by the MIPS ABI, and should not be used verbatim in developing MIPS ABI applications. Single copies of the gABI may be obtained from Prentice-Hall by calling 201-767-5937.

    System V Application Binary Interface, MIPS Processor Supplement, Prentice-Hall, ISBN 0-13-880170-3. This is the defining document for the psABI (Processor-Specific ABI) for the MIPS Processor family. A Revised (3rd) Edition will soon be on the market, but may document interfaces which are not covered by the MIPS ABI, and should not be used verbatim in developing MIPS ABI applications. Single copies of the psABI may be obtained from Prentice-Hall by calling 201-767-5937.

    MIPS Processor ABI Conformance Guide, Version 1.1, MIPS ABI Group The Conformance Guide is currently being distributed at revision level 1.1.2. The Conformance Guide editions are numbered in the form major.minor; a trailing .rev, if present indicates only minor editing changes, no new functionality. The first approved version was 1.0 (revision 1.0.1 was distributed). See Which Reference Platform version should I use? for a discussion of how the Reference Platform relates to this. Approval of version 1.2 (referred to occasionally in this text) is forthcoming, but formal release will be delayed until a matching Reference Platform is available. The functionality approved for 1.2 is described in the 1.1.2 "Future Directions" section.

    Additional documents are referred to within the above standards:

    MIPS RISC Architecture, Kane and Heinrich, Prentice Hall, ISBN 0-13-590472-2.

    X Window System: the Complete Reference to Xlib, X Protocol, ICCCM, XLFD, Digital Press, ISBN 1-55558-088-2.

    OSF/Motif Programmer's Reference, Revision 1.2, Prentice Hall, ISBN 0-13-643115-1.

    NOTE: the IEEE has approved (12/93) POSIX 1295, which describes the interfaces of Motif. The specification is closely derived from the preceding reference, but as an approved standard, may replace the above in a future Conformance Guide.

    Where to find documents, support, info

    The Conformance Guide is available from participating vendors. It is also available in PostScript form to registered developers in the SGI Developer Program, on the Developer Toolbox CD-ROM, release 4.0 and beyond.

    The SGI Developer Toolbox also includes a note in PostScript format on porting to the ABI, and some sample programs illustrating porting techniques.

    Which version of the ABI does a system support?

    Prior to the 1.2 Conformance Guide, there is no reliable programmatic interface for determining which version of the ABI a particular system conforms to. Contact the system vendor for further information.

    Specific features can usually be tested for, but compliance levels cannot be inferred from this, as the particular feature may have been introduced on a given platform before full compliance for the version of the spec in which the feature first appeared.

    With the 1.2 Conformance Guide, the ABI version will be obtainable by examining the file /etc/mipsabiversion. If this file is not present, the only assumption that should be made is "pre-1.2".

    What is OCMP?

    The Open Computing environment for MIPS Platforms (OCMP) group is a Japanese version of the MIPS ABI. Several MIPS ABI group members are also active in OCMP. The OCMP-ABI is aligned with the 1.0 version of the Conformance Guide, with a number of extensions for internationalization and localization, CD-ROM access, X11R5 and OSF/Motif 1.2, to name a few. The MIPS ABI and OCMP groups work together to keep the specifications aligned, and in fact X11R5 and OSF/Motif 1.2 became part of the MIPS ABI specification with the 1.1 Conformance Guide.

    v1.6 L/M 6/15/94